// 通用类型定义

/**
 * API响应基础结构
 */
export interface ApiResponse<T = any> {
  success: boolean
  data?: T
  error?: string
}

/**
 * 分页参数
 */
export interface PaginationParams {
  page?: number
  limit?: number
  orderBy?: string
  orderDirection?: 'ASC' | 'DESC'
}

/**
 * 分页响应
 */
export interface PaginationResponse {
  page: number
  limit: number
  total: number
  totalPages: number
}

/**
 * 主题类型
 */
export type ThemeType = 'light' | 'dark'

/**
 * 照片视图模式
 */
export type PhotoViewMode = 'grid' | 'list' | 'masonry'

/**
 * 排序字段
 */
export type SortByField = 'captured_at' | 'created_at' | 'file_name' | 'file_size' | 'rating'

/**
 * 排序方向
 */
export type SortOrder = 'asc' | 'desc'

/**
 * 文件类型
 */
export interface FileType {
  name: string
  extensions: string[]
}

/**
 * 消息框类型
 */
export type MessageBoxType = 'none' | 'info' | 'error' | 'question' | 'warning'

/**
 * 消息框选项
 */
export interface MessageBoxOptions {
  type?: MessageBoxType
  title: string
  message: string
  buttons?: string[]
}

/**
 * 标签类型
 */
export interface Tag {
  id: number
  name: string
  color?: string
  created_at: string
}